<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: pcl::SupervoxelClustering&lt; PointT &gt; 模板类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classpcl_1_1_supervoxel_clustering.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">类</a> &#124;
<a href="#pub-types">Public 类型</a> &#124;
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pub-static-methods">静态 Public 成员函数</a> &#124;
<a href="#pri-types">Private 类型</a> &#124;
<a href="#pri-methods">Private 成员函数</a> &#124;
<a href="#pri-attribs">Private 属性</a> &#124;
<a href="#friends">友元</a> &#124;
<a href="classpcl_1_1_supervoxel_clustering-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">pcl::SupervoxelClustering&lt; PointT &gt; 模板类 参考</div>  </div>
</div><!--header-->
<div class="contents">

<p>Implements a supervoxel algorithm based on voxel structure, normals, and rgb values  
 <a href="classpcl_1_1_supervoxel_clustering.html#details">更多...</a></p>

<p><code>#include &lt;<a class="el" href="supervoxel__clustering_8h_source.html">supervoxel_clustering.h</a>&gt;</code></p>
<div class="dynheader">
类 pcl::SupervoxelClustering&lt; PointT &gt; 继承关系图:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classpcl_1_1_supervoxel_clustering.png" usemap="#pcl::SupervoxelClustering_3C_20PointT_20_3E_map" alt=""/>
  <map id="pcl::SupervoxelClustering_3C_20PointT_20_3E_map" name="pcl::SupervoxelClustering_3C_20PointT_20_3E_map">
<area href="classpcl_1_1_p_c_l_base.html" title="PCL base class. Implements methods that are used by most PCL algorithms." alt="pcl::PCLBase&lt; PointT &gt;" shape="rect" coords="0,0,215,24"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
类</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering_1_1_supervoxel_helper.html">SupervoxelHelper</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal storage class for supervoxels  <a href="classpcl_1_1_supervoxel_clustering_1_1_supervoxel_helper.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering_1_1_voxel_data.html">VoxelData</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classpcl_1_1_supervoxel_clustering_1_1_voxel_data.html" title="VoxelData is a structure used for storing data within a pcl::octree::OctreePointCloudAdjacencyContain...">VoxelData</a> is a structure used for storing data within a <a class="el" href="classpcl_1_1octree_1_1_octree_point_cloud_adjacency_container.html" title="Octree adjacency leaf container class- stores a list of pointers to neighbors, number of points added...">pcl::octree::OctreePointCloudAdjacencyContainer</a>  <a href="classpcl_1_1_supervoxel_clustering_1_1_voxel_data.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
<tr class="memitem:af8c3ee970dccc2451fe1a0d8094a0001"><td class="memItemLeft" align="right" valign="top"><a id="af8c3ee970dccc2451fe1a0d8094a0001"></a>
typedef <a class="el" href="classpcl_1_1octree_1_1_octree_point_cloud_adjacency_container.html">pcl::octree::OctreePointCloudAdjacencyContainer</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, <a class="el" href="classpcl_1_1_supervoxel_clustering_1_1_voxel_data.html">VoxelData</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>LeafContainerT</b></td></tr>
<tr class="separator:af8c3ee970dccc2451fe1a0d8094a0001"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53fede579637bfb35a24dac9b91f0d13"><td class="memItemLeft" align="right" valign="top"><a id="a53fede579637bfb35a24dac9b91f0d13"></a>
typedef std::vector&lt; <a class="el" href="classpcl_1_1octree_1_1_octree_point_cloud_adjacency_container.html">LeafContainerT</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>LeafVectorT</b></td></tr>
<tr class="separator:a53fede579637bfb35a24dac9b91f0d13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad17bc8f2a4f6a12afa95f667d9b90918"><td class="memItemLeft" align="right" valign="top"><a id="ad17bc8f2a4f6a12afa95f667d9b90918"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudT</b></td></tr>
<tr class="separator:ad17bc8f2a4f6a12afa95f667d9b90918"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a148ade4813a92aacd7b6770442badaa8"><td class="memItemLeft" align="right" valign="top"><a id="a148ade4813a92aacd7b6770442badaa8"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_normal.html">Normal</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>NormalCloudT</b></td></tr>
<tr class="separator:a148ade4813a92aacd7b6770442badaa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0daf8044d79d603e907f21cb542c3e70"><td class="memItemLeft" align="right" valign="top"><a id="a0daf8044d79d603e907f21cb542c3e70"></a>
typedef <a class="el" href="classpcl_1_1octree_1_1_octree_point_cloud_adjacency.html">pcl::octree::OctreePointCloudAdjacency</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, <a class="el" href="classpcl_1_1octree_1_1_octree_point_cloud_adjacency_container.html">LeafContainerT</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>OctreeAdjacencyT</b></td></tr>
<tr class="separator:a0daf8044d79d603e907f21cb542c3e70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3ba712a19176646a68f501584c32dfc"><td class="memItemLeft" align="right" valign="top"><a id="ae3ba712a19176646a68f501584c32dfc"></a>
typedef <a class="el" href="classpcl_1_1octree_1_1_octree_point_cloud_search.html">pcl::octree::OctreePointCloudSearch</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>OctreeSearchT</b></td></tr>
<tr class="separator:ae3ba712a19176646a68f501584c32dfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42fbafb6c47e0ff3fd46c5ea0e1675ce"><td class="memItemLeft" align="right" valign="top"><a id="a42fbafb6c47e0ff3fd46c5ea0e1675ce"></a>
typedef <a class="el" href="classpcl_1_1search_1_1_kd_tree.html">pcl::search::KdTree</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>KdTreeT</b></td></tr>
<tr class="separator:a42fbafb6c47e0ff3fd46c5ea0e1675ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b3d44a62a29746f49b4548f93e68d2c"><td class="memItemLeft" align="right" valign="top"><a id="a0b3d44a62a29746f49b4548f93e68d2c"></a>
typedef boost::shared_ptr&lt; std::vector&lt; int &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>IndicesPtr</b></td></tr>
<tr class="separator:a0b3d44a62a29746f49b4548f93e68d2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a478b23e41f4a20ff60a10a50c004262e"><td class="memItemLeft" align="right" valign="top"><a id="a478b23e41f4a20ff60a10a50c004262e"></a>
typedef boost::adjacency_list&lt; boost::setS, boost::setS, boost::undirectedS, uint32_t, float &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>VoxelAdjacencyList</b></td></tr>
<tr class="separator:a478b23e41f4a20ff60a10a50c004262e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f4ad1f242a07f60e5d3a58bce74a952"><td class="memItemLeft" align="right" valign="top"><a id="a9f4ad1f242a07f60e5d3a58bce74a952"></a>
typedef VoxelAdjacencyList::vertex_descriptor&#160;</td><td class="memItemRight" valign="bottom"><b>VoxelID</b></td></tr>
<tr class="separator:a9f4ad1f242a07f60e5d3a58bce74a952"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3338517cb8a8741c504c9b695343da58"><td class="memItemLeft" align="right" valign="top"><a id="a3338517cb8a8741c504c9b695343da58"></a>
typedef VoxelAdjacencyList::edge_descriptor&#160;</td><td class="memItemRight" valign="bottom"><b>EdgeID</b></td></tr>
<tr class="separator:a3338517cb8a8741c504c9b695343da58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Public 类型 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointT &gt;</a></td></tr>
<tr class="memitem:ae2f6f6863a73337858b7a7a054eaae4f inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ae2f6f6863a73337858b7a7a054eaae4f"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloud</b></td></tr>
<tr class="separator:ae2f6f6863a73337858b7a7a054eaae4f inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab84dd662cda89edb882fe5307b2136ea inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ab84dd662cda89edb882fe5307b2136ea"></a>
typedef PointCloud::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudPtr</b></td></tr>
<tr class="separator:ab84dd662cda89edb882fe5307b2136ea inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8326513fad0680b6993e2f1a79a6af4 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ac8326513fad0680b6993e2f1a79a6af4"></a>
typedef PointCloud::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudConstPtr</b></td></tr>
<tr class="separator:ac8326513fad0680b6993e2f1a79a6af4 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae51eae0c7b3e0b7178f4894dff90660a inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ae51eae0c7b3e0b7178f4894dff90660a"></a>
typedef boost::shared_ptr&lt; <a class="el" href="structpcl_1_1_point_indices.html">PointIndices</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointIndicesPtr</b></td></tr>
<tr class="separator:ae51eae0c7b3e0b7178f4894dff90660a inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51771056fb4ab8c448a11157acbe2ee0 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a51771056fb4ab8c448a11157acbe2ee0"></a>
typedef boost::shared_ptr&lt; <a class="el" href="structpcl_1_1_point_indices.html">PointIndices</a> const  &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointIndicesConstPtr</b></td></tr>
<tr class="separator:a51771056fb4ab8c448a11157acbe2ee0 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:aa91db439be84dadc9143483aa2240835"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#aa91db439be84dadc9143483aa2240835">SupervoxelClustering</a> (float voxel_resolution, float seed_resolution)</td></tr>
<tr class="memdesc:aa91db439be84dadc9143483aa2240835"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor that sets default values for member variables.  <a href="classpcl_1_1_supervoxel_clustering.html#aa91db439be84dadc9143483aa2240835">更多...</a><br /></td></tr>
<tr class="separator:aa91db439be84dadc9143483aa2240835"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a902a00129f2e209c6ef9533bb08dc5f2"><td class="memItemLeft" align="right" valign="top"><a id="a902a00129f2e209c6ef9533bb08dc5f2"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>SupervoxelClustering</b> (float voxel_resolution, float seed_resolution, bool)</td></tr>
<tr class="separator:a902a00129f2e209c6ef9533bb08dc5f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac09241a0bd7d0799f97a688d89dcd6e3"><td class="memItemLeft" align="right" valign="top"><a id="ac09241a0bd7d0799f97a688d89dcd6e3"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#ac09241a0bd7d0799f97a688d89dcd6e3">~SupervoxelClustering</a> ()</td></tr>
<tr class="memdesc:ac09241a0bd7d0799f97a688d89dcd6e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This destructor destroys the cloud, normals and search method used for finding neighbors. In other words it frees memory. <br /></td></tr>
<tr class="separator:ac09241a0bd7d0799f97a688d89dcd6e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c6cdbb8117d4c80506a427c5fd1c221"><td class="memItemLeft" align="right" valign="top"><a id="a4c6cdbb8117d4c80506a427c5fd1c221"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a4c6cdbb8117d4c80506a427c5fd1c221">setVoxelResolution</a> (float resolution)</td></tr>
<tr class="memdesc:a4c6cdbb8117d4c80506a427c5fd1c221"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the resolution of the octree voxels <br /></td></tr>
<tr class="separator:a4c6cdbb8117d4c80506a427c5fd1c221"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b6f7118c8c4ba33d474fda9e53c0aee"><td class="memItemLeft" align="right" valign="top"><a id="a2b6f7118c8c4ba33d474fda9e53c0aee"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a2b6f7118c8c4ba33d474fda9e53c0aee">getVoxelResolution</a> () const</td></tr>
<tr class="memdesc:a2b6f7118c8c4ba33d474fda9e53c0aee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the resolution of the octree voxels <br /></td></tr>
<tr class="separator:a2b6f7118c8c4ba33d474fda9e53c0aee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8357cf80b7a32e7315e01ed3ce265b1f"><td class="memItemLeft" align="right" valign="top"><a id="a8357cf80b7a32e7315e01ed3ce265b1f"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a8357cf80b7a32e7315e01ed3ce265b1f">setSeedResolution</a> (float seed_resolution)</td></tr>
<tr class="memdesc:a8357cf80b7a32e7315e01ed3ce265b1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the resolution of the octree seed voxels <br /></td></tr>
<tr class="separator:a8357cf80b7a32e7315e01ed3ce265b1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6ecaedc1bd918a372a2305e0e7dbfef"><td class="memItemLeft" align="right" valign="top"><a id="ad6ecaedc1bd918a372a2305e0e7dbfef"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#ad6ecaedc1bd918a372a2305e0e7dbfef">getSeedResolution</a> () const</td></tr>
<tr class="memdesc:ad6ecaedc1bd918a372a2305e0e7dbfef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the resolution of the octree seed voxels <br /></td></tr>
<tr class="separator:ad6ecaedc1bd918a372a2305e0e7dbfef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3acef1d574a49a782557a2925a6d7af0"><td class="memItemLeft" align="right" valign="top"><a id="a3acef1d574a49a782557a2925a6d7af0"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a3acef1d574a49a782557a2925a6d7af0">setColorImportance</a> (float val)</td></tr>
<tr class="memdesc:a3acef1d574a49a782557a2925a6d7af0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the importance of color for supervoxels <br /></td></tr>
<tr class="separator:a3acef1d574a49a782557a2925a6d7af0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29cf64b3f1ae3345dd3d2462a10f677c"><td class="memItemLeft" align="right" valign="top"><a id="a29cf64b3f1ae3345dd3d2462a10f677c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a29cf64b3f1ae3345dd3d2462a10f677c">setSpatialImportance</a> (float val)</td></tr>
<tr class="memdesc:a29cf64b3f1ae3345dd3d2462a10f677c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the importance of spatial distance for supervoxels <br /></td></tr>
<tr class="separator:a29cf64b3f1ae3345dd3d2462a10f677c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4ea0842b3d4205104c23b63294a8ed8"><td class="memItemLeft" align="right" valign="top"><a id="ae4ea0842b3d4205104c23b63294a8ed8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#ae4ea0842b3d4205104c23b63294a8ed8">setNormalImportance</a> (float val)</td></tr>
<tr class="memdesc:ae4ea0842b3d4205104c23b63294a8ed8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the importance of scalar normal product for supervoxels <br /></td></tr>
<tr class="separator:ae4ea0842b3d4205104c23b63294a8ed8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8888922b5dfae82f61ddb15f8074bd7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#aa8888922b5dfae82f61ddb15f8074bd7">setUseSingleCameraTransform</a> (bool val)</td></tr>
<tr class="memdesc:aa8888922b5dfae82f61ddb15f8074bd7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set whether or not to use the single camera transform  <a href="classpcl_1_1_supervoxel_clustering.html#aa8888922b5dfae82f61ddb15f8074bd7">更多...</a><br /></td></tr>
<tr class="separator:aa8888922b5dfae82f61ddb15f8074bd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a938e1cbb1bbbc364c9113d7971b362e3"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a938e1cbb1bbbc364c9113d7971b362e3">extract</a> (std::map&lt; uint32_t, typename <a class="el" href="classpcl_1_1_supervoxel.html">Supervoxel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::Ptr &gt; &amp;supervoxel_clusters)</td></tr>
<tr class="memdesc:a938e1cbb1bbbc364c9113d7971b362e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method launches the segmentation algorithm and returns the supervoxels that were obtained during the segmentation.  <a href="classpcl_1_1_supervoxel_clustering.html#a938e1cbb1bbbc364c9113d7971b362e3">更多...</a><br /></td></tr>
<tr class="separator:a938e1cbb1bbbc364c9113d7971b362e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77235192a0a6f1622a1bb3d7cc0003d2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a77235192a0a6f1622a1bb3d7cc0003d2">setInputCloud</a> (const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;cloud)</td></tr>
<tr class="memdesc:a77235192a0a6f1622a1bb3d7cc0003d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method sets the cloud to be supervoxelized  <a href="classpcl_1_1_supervoxel_clustering.html#a77235192a0a6f1622a1bb3d7cc0003d2">更多...</a><br /></td></tr>
<tr class="separator:a77235192a0a6f1622a1bb3d7cc0003d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b87562ad91fe6c0132340b53b04ea97"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a2b87562ad91fe6c0132340b53b04ea97">setNormalCloud</a> (typename NormalCloudT::ConstPtr normal_cloud)</td></tr>
<tr class="memdesc:a2b87562ad91fe6c0132340b53b04ea97"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method sets the normals to be used for supervoxels (should be same size as input cloud)  <a href="classpcl_1_1_supervoxel_clustering.html#a2b87562ad91fe6c0132340b53b04ea97">更多...</a><br /></td></tr>
<tr class="separator:a2b87562ad91fe6c0132340b53b04ea97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43b9d69751345e0d41d461233bc2559f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a43b9d69751345e0d41d461233bc2559f">refineSupervoxels</a> (int num_itr, std::map&lt; uint32_t, typename <a class="el" href="classpcl_1_1_supervoxel.html">Supervoxel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::Ptr &gt; &amp;supervoxel_clusters)</td></tr>
<tr class="memdesc:a43b9d69751345e0d41d461233bc2559f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method refines the calculated supervoxels - may only be called after extract  <a href="classpcl_1_1_supervoxel_clustering.html#a43b9d69751345e0d41d461233bc2559f">更多...</a><br /></td></tr>
<tr class="separator:a43b9d69751345e0d41d461233bc2559f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ddb159d39a3da31c756a66786b232a8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointXYZRGBA</a> &gt;::Ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a1ddb159d39a3da31c756a66786b232a8">getColoredCloud</a> () const</td></tr>
<tr class="memdesc:a1ddb159d39a3da31c756a66786b232a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an <a class="el" href="structpcl_1_1_r_g_b.html" title="A structure representing RGB color information.">RGB</a> colorized cloud showing superpixels Otherwise it returns an empty pointer. Points that belong to the same supervoxel have the same color. But this function doesn't guarantee that different segments will have different color(it's random). Points that are unlabeled will be black  <a href="classpcl_1_1_supervoxel_clustering.html#a1ddb159d39a3da31c756a66786b232a8">更多...</a><br /></td></tr>
<tr class="separator:a1ddb159d39a3da31c756a66786b232a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a768a1fad8f67a7ea5e18a36cd4cf4af5"><td class="memItemLeft" align="right" valign="top"><a id="a768a1fad8f67a7ea5e18a36cd4cf4af5"></a>
<a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::Ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a768a1fad8f67a7ea5e18a36cd4cf4af5">getVoxelCentroidCloud</a> () const</td></tr>
<tr class="memdesc:a768a1fad8f67a7ea5e18a36cd4cf4af5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a deep copy of the voxel centroid cloud <br /></td></tr>
<tr class="separator:a768a1fad8f67a7ea5e18a36cd4cf4af5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec41648bf8e12ee2b9621e7ec08fd887"><td class="memItemLeft" align="right" valign="top"><a id="aec41648bf8e12ee2b9621e7ec08fd887"></a>
<a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_l.html">PointXYZL</a> &gt;::Ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#aec41648bf8e12ee2b9621e7ec08fd887">getLabeledCloud</a> () const</td></tr>
<tr class="memdesc:aec41648bf8e12ee2b9621e7ec08fd887"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns labeled cloud Points that belong to the same supervoxel have the same label. Labels for segments start from 1, unlabled points have label 0 <br /></td></tr>
<tr class="separator:aec41648bf8e12ee2b9621e7ec08fd887"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47bf1608e4ff872353503bce404db736"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">pcl::PointXYZRGBA</a> &gt;::Ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a47bf1608e4ff872353503bce404db736">getColoredVoxelCloud</a> () const</td></tr>
<tr class="memdesc:a47bf1608e4ff872353503bce404db736"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an <a class="el" href="structpcl_1_1_r_g_b.html" title="A structure representing RGB color information.">RGB</a> colorized voxelized cloud showing superpixels Otherwise it returns an empty pointer. Points that belong to the same supervoxel have the same color. But this function doesn't guarantee that different segments will have different color(it's random). Points that are unlabeled will be black  <a href="classpcl_1_1_supervoxel_clustering.html#a47bf1608e4ff872353503bce404db736">更多...</a><br /></td></tr>
<tr class="separator:a47bf1608e4ff872353503bce404db736"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48b32cea7002e291ddc3bb1398f52656"><td class="memItemLeft" align="right" valign="top"><a id="a48b32cea7002e291ddc3bb1398f52656"></a>
<a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_l.html">pcl::PointXYZL</a> &gt;::Ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a48b32cea7002e291ddc3bb1398f52656">getLabeledVoxelCloud</a> () const</td></tr>
<tr class="memdesc:a48b32cea7002e291ddc3bb1398f52656"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns labeled voxelized cloud Points that belong to the same supervoxel have the same label. Labels for segments start from 1, unlabled points have label 0 <br /></td></tr>
<tr class="separator:a48b32cea7002e291ddc3bb1398f52656"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc98c38e820acde1fb8dc87c66ddc5c3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#abc98c38e820acde1fb8dc87c66ddc5c3">getSupervoxelAdjacencyList</a> (VoxelAdjacencyList &amp;adjacency_list_arg) const</td></tr>
<tr class="memdesc:abc98c38e820acde1fb8dc87c66ddc5c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the adjacency list (Boost Graph library) which gives connections between supervoxels  <a href="classpcl_1_1_supervoxel_clustering.html#abc98c38e820acde1fb8dc87c66ddc5c3">更多...</a><br /></td></tr>
<tr class="separator:abc98c38e820acde1fb8dc87c66ddc5c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92f5536d132225ee24c33fa967a37cf3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a92f5536d132225ee24c33fa967a37cf3">getSupervoxelAdjacency</a> (std::multimap&lt; uint32_t, uint32_t &gt; &amp;label_adjacency) const</td></tr>
<tr class="memdesc:a92f5536d132225ee24c33fa967a37cf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a multimap which gives supervoxel adjacency  <a href="classpcl_1_1_supervoxel_clustering.html#a92f5536d132225ee24c33fa967a37cf3">更多...</a><br /></td></tr>
<tr class="separator:a92f5536d132225ee24c33fa967a37cf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a180e6e54a1b1320266ec41c2879923cd"><td class="memItemLeft" align="right" valign="top"><a id="a180e6e54a1b1320266ec41c2879923cd"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a180e6e54a1b1320266ec41c2879923cd">getMaxLabel</a> () const</td></tr>
<tr class="memdesc:a180e6e54a1b1320266ec41c2879923cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current maximum (highest) label <br /></td></tr>
<tr class="separator:a180e6e54a1b1320266ec41c2879923cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Public 成员函数 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointT &gt;</a></td></tr>
<tr class="memitem:af4fbc5eb005057f8a0fc6d60bde595df inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="af4fbc5eb005057f8a0fc6d60bde595df"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#af4fbc5eb005057f8a0fc6d60bde595df">PCLBase</a> ()</td></tr>
<tr class="memdesc:af4fbc5eb005057f8a0fc6d60bde595df inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty constructor. <br /></td></tr>
<tr class="separator:af4fbc5eb005057f8a0fc6d60bde595df inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a6dd7a91275d7737cf1b18005b47244 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a7a6dd7a91275d7737cf1b18005b47244"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a7a6dd7a91275d7737cf1b18005b47244">PCLBase</a> (const <a class="el" href="classpcl_1_1_p_c_l_base.html">PCLBase</a> &amp;base)</td></tr>
<tr class="memdesc:a7a6dd7a91275d7737cf1b18005b47244 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
<tr class="separator:a7a6dd7a91275d7737cf1b18005b47244 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5d6846e98e59c37dcc3dc9958d53966 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ad5d6846e98e59c37dcc3dc9958d53966"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#ad5d6846e98e59c37dcc3dc9958d53966">~PCLBase</a> ()</td></tr>
<tr class="memdesc:ad5d6846e98e59c37dcc3dc9958d53966 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:ad5d6846e98e59c37dcc3dc9958d53966 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1952d7101f3942bac3b69ed55c1ca7ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a1952d7101f3942bac3b69ed55c1ca7ea">setInputCloud</a> (const PointCloudConstPtr &amp;cloud)</td></tr>
<tr class="memdesc:a1952d7101f3942bac3b69ed55c1ca7ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the input dataset  <a href="classpcl_1_1_p_c_l_base.html#a1952d7101f3942bac3b69ed55c1ca7ea">更多...</a><br /></td></tr>
<tr class="separator:a1952d7101f3942bac3b69ed55c1ca7ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cd745c4f7a792212f4fc3720b9d46ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a8cd745c4f7a792212f4fc3720b9d46ea"></a>
PointCloudConstPtr const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a8cd745c4f7a792212f4fc3720b9d46ea">getInputCloud</a> () const</td></tr>
<tr class="memdesc:a8cd745c4f7a792212f4fc3720b9d46ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the input point cloud dataset. <br /></td></tr>
<tr class="separator:a8cd745c4f7a792212f4fc3720b9d46ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab219359de6eb34c9d51e2e976dd1a0d1 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#ab219359de6eb34c9d51e2e976dd1a0d1">setIndices</a> (const IndicesPtr &amp;indices)</td></tr>
<tr class="memdesc:ab219359de6eb34c9d51e2e976dd1a0d1 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the vector of indices that represents the input data.  <a href="classpcl_1_1_p_c_l_base.html#ab219359de6eb34c9d51e2e976dd1a0d1">更多...</a><br /></td></tr>
<tr class="separator:ab219359de6eb34c9d51e2e976dd1a0d1 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a436c68c74b31e4dd00000adfbb11ca7c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a436c68c74b31e4dd00000adfbb11ca7c">setIndices</a> (const IndicesConstPtr &amp;indices)</td></tr>
<tr class="memdesc:a436c68c74b31e4dd00000adfbb11ca7c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the vector of indices that represents the input data.  <a href="classpcl_1_1_p_c_l_base.html#a436c68c74b31e4dd00000adfbb11ca7c">更多...</a><br /></td></tr>
<tr class="separator:a436c68c74b31e4dd00000adfbb11ca7c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9cc90d8364ce968566f75800d3773ca inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#af9cc90d8364ce968566f75800d3773ca">setIndices</a> (const PointIndicesConstPtr &amp;indices)</td></tr>
<tr class="memdesc:af9cc90d8364ce968566f75800d3773ca inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the vector of indices that represents the input data.  <a href="classpcl_1_1_p_c_l_base.html#af9cc90d8364ce968566f75800d3773ca">更多...</a><br /></td></tr>
<tr class="separator:af9cc90d8364ce968566f75800d3773ca inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a930c7a6375fdf65ff8cfdb4eb4a6d996 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a930c7a6375fdf65ff8cfdb4eb4a6d996">setIndices</a> (size_t row_start, size_t col_start, size_t nb_rows, size_t nb_cols)</td></tr>
<tr class="memdesc:a930c7a6375fdf65ff8cfdb4eb4a6d996 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the indices for the points laying within an interest region of the point cloud.  <a href="classpcl_1_1_p_c_l_base.html#a930c7a6375fdf65ff8cfdb4eb4a6d996">更多...</a><br /></td></tr>
<tr class="separator:a930c7a6375fdf65ff8cfdb4eb4a6d996 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a058753dd4de73d3d0062fe2e452fba3c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a058753dd4de73d3d0062fe2e452fba3c"></a>
IndicesPtr const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a058753dd4de73d3d0062fe2e452fba3c">getIndices</a> ()</td></tr>
<tr class="memdesc:a058753dd4de73d3d0062fe2e452fba3c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the vector of indices used. <br /></td></tr>
<tr class="separator:a058753dd4de73d3d0062fe2e452fba3c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acae187b37230758959572ceb1e6e2045 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="acae187b37230758959572ceb1e6e2045"></a>
IndicesConstPtr const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#acae187b37230758959572ceb1e6e2045">getIndices</a> () const</td></tr>
<tr class="memdesc:acae187b37230758959572ceb1e6e2045 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the vector of indices used. <br /></td></tr>
<tr class="separator:acae187b37230758959572ceb1e6e2045 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7335fedb0af0930b9d1dedcb54ba201 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#af7335fedb0af0930b9d1dedcb54ba201">operator[]</a> (size_t pos) const</td></tr>
<tr class="memdesc:af7335fedb0af0930b9d1dedcb54ba201 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Override <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> operator[] to shorten code  <a href="classpcl_1_1_p_c_l_base.html#af7335fedb0af0930b9d1dedcb54ba201">更多...</a><br /></td></tr>
<tr class="separator:af7335fedb0af0930b9d1dedcb54ba201 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
静态 Public 成员函数</h2></td></tr>
<tr class="memitem:a4cf4c3c376c25b784c35faff05326d88"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_normal.html">pcl::PointNormal</a> &gt;::Ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a4cf4c3c376c25b784c35faff05326d88">makeSupervoxelNormalCloud</a> (std::map&lt; uint32_t, typename <a class="el" href="classpcl_1_1_supervoxel.html">Supervoxel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::Ptr &gt; &amp;supervoxel_clusters)</td></tr>
<tr class="memdesc:a4cf4c3c376c25b784c35faff05326d88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Static helper function which returns a pointcloud of normals for the input supervoxels  <a href="classpcl_1_1_supervoxel_clustering.html#a4cf4c3c376c25b784c35faff05326d88">更多...</a><br /></td></tr>
<tr class="separator:a4cf4c3c376c25b784c35faff05326d88"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-types"></a>
Private 类型</h2></td></tr>
<tr class="memitem:a1e6a6552731a59301ad06eac05f0461f"><td class="memItemLeft" align="right" valign="top"><a id="a1e6a6552731a59301ad06eac05f0461f"></a>
typedef boost::ptr_list&lt; <a class="el" href="classpcl_1_1_supervoxel_clustering_1_1_supervoxel_helper.html">SupervoxelHelper</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>HelperListT</b></td></tr>
<tr class="separator:a1e6a6552731a59301ad06eac05f0461f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private 成员函数</h2></td></tr>
<tr class="memitem:aad09607c53e620e324237c8286883575"><td class="memItemLeft" align="right" valign="top"><a id="aad09607c53e620e324237c8286883575"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#aad09607c53e620e324237c8286883575">prepareForSegmentation</a> ()</td></tr>
<tr class="memdesc:aad09607c53e620e324237c8286883575"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method simply checks if it is possible to execute the segmentation algorithm with the current settings. If it is possible then it returns true. <br /></td></tr>
<tr class="separator:aad09607c53e620e324237c8286883575"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a597347a31afc8787fc9a4067ccf0b0e1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a597347a31afc8787fc9a4067ccf0b0e1">selectInitialSupervoxelSeeds</a> (std::vector&lt; int &gt; &amp;seed_indices)</td></tr>
<tr class="memdesc:a597347a31afc8787fc9a4067ccf0b0e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">This selects points to use as initial supervoxel centroids  <a href="classpcl_1_1_supervoxel_clustering.html#a597347a31afc8787fc9a4067ccf0b0e1">更多...</a><br /></td></tr>
<tr class="separator:a597347a31afc8787fc9a4067ccf0b0e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9dee2c8a749e1491f43927b1c025401f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a9dee2c8a749e1491f43927b1c025401f">createSupervoxelHelpers</a> (std::vector&lt; int &gt; &amp;seed_indices)</td></tr>
<tr class="memdesc:a9dee2c8a749e1491f43927b1c025401f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method creates the internal supervoxel helpers based on the provided seed points  <a href="classpcl_1_1_supervoxel_clustering.html#a9dee2c8a749e1491f43927b1c025401f">更多...</a><br /></td></tr>
<tr class="separator:a9dee2c8a749e1491f43927b1c025401f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d9e64bc6c4ca7b94afe457d4df46bf1"><td class="memItemLeft" align="right" valign="top"><a id="a8d9e64bc6c4ca7b94afe457d4df46bf1"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a8d9e64bc6c4ca7b94afe457d4df46bf1">expandSupervoxels</a> (int depth)</td></tr>
<tr class="memdesc:a8d9e64bc6c4ca7b94afe457d4df46bf1"><td class="mdescLeft">&#160;</td><td class="mdescRight">This performs the superpixel evolution <br /></td></tr>
<tr class="separator:a8d9e64bc6c4ca7b94afe457d4df46bf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae95b662b4d4b764f334d52611f466cb3"><td class="memItemLeft" align="right" valign="top"><a id="ae95b662b4d4b764f334d52611f466cb3"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#ae95b662b4d4b764f334d52611f466cb3">computeVoxelData</a> ()</td></tr>
<tr class="memdesc:ae95b662b4d4b764f334d52611f466cb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This sets the data of the voxels in the tree <br /></td></tr>
<tr class="separator:ae95b662b4d4b764f334d52611f466cb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a1f44fad93be1fc56ecd4483aba973c"><td class="memItemLeft" align="right" valign="top"><a id="a5a1f44fad93be1fc56ecd4483aba973c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a5a1f44fad93be1fc56ecd4483aba973c">reseedSupervoxels</a> ()</td></tr>
<tr class="memdesc:a5a1f44fad93be1fc56ecd4483aba973c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reseeds the supervoxels by finding the voxel closest to current centroid <br /></td></tr>
<tr class="separator:a5a1f44fad93be1fc56ecd4483aba973c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5b42dc7dcd9c348a94aef941ad246c4"><td class="memItemLeft" align="right" valign="top"><a id="af5b42dc7dcd9c348a94aef941ad246c4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#af5b42dc7dcd9c348a94aef941ad246c4">makeSupervoxels</a> (std::map&lt; uint32_t, typename <a class="el" href="classpcl_1_1_supervoxel.html">Supervoxel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::Ptr &gt; &amp;supervoxel_clusters)</td></tr>
<tr class="memdesc:af5b42dc7dcd9c348a94aef941ad246c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs the map of supervoxel clusters from the internal supervoxel helpers <br /></td></tr>
<tr class="separator:af5b42dc7dcd9c348a94aef941ad246c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76f8677b4113dcdf3c1e2d95e4275e6e"><td class="memItemLeft" align="right" valign="top"><a id="a76f8677b4113dcdf3c1e2d95e4275e6e"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a76f8677b4113dcdf3c1e2d95e4275e6e">voxelDataDistance</a> (const <a class="el" href="classpcl_1_1_supervoxel_clustering_1_1_voxel_data.html">VoxelData</a> &amp;v1, const <a class="el" href="classpcl_1_1_supervoxel_clustering_1_1_voxel_data.html">VoxelData</a> &amp;v2) const</td></tr>
<tr class="memdesc:a76f8677b4113dcdf3c1e2d95e4275e6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Distance function used for comparing voxelDatas <br /></td></tr>
<tr class="separator:a76f8677b4113dcdf3c1e2d95e4275e6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9e94dcce3ec3eca852af17286e30786"><td class="memItemLeft" align="right" valign="top"><a id="ab9e94dcce3ec3eca852af17286e30786"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#ab9e94dcce3ec3eca852af17286e30786">transformFunction</a> (<a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;p)</td></tr>
<tr class="memdesc:ab9e94dcce3ec3eca852af17286e30786"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transform function used to normalize voxel density versus distance from camera <br /></td></tr>
<tr class="separator:ab9e94dcce3ec3eca852af17286e30786"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private 属性</h2></td></tr>
<tr class="memitem:aa6068bcabad2d3b1e6870b489354006c"><td class="memItemLeft" align="right" valign="top"><a id="aa6068bcabad2d3b1e6870b489354006c"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#aa6068bcabad2d3b1e6870b489354006c">resolution_</a></td></tr>
<tr class="memdesc:aa6068bcabad2d3b1e6870b489354006c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the resolution used in the octree <br /></td></tr>
<tr class="separator:aa6068bcabad2d3b1e6870b489354006c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bd458afc79e5b4569d07b582799c371"><td class="memItemLeft" align="right" valign="top"><a id="a6bd458afc79e5b4569d07b582799c371"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a6bd458afc79e5b4569d07b582799c371">seed_resolution_</a></td></tr>
<tr class="memdesc:a6bd458afc79e5b4569d07b582799c371"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the resolution used to seed the superpixels <br /></td></tr>
<tr class="separator:a6bd458afc79e5b4569d07b582799c371"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad25cfde9a6e64d1a7070105122b78de5"><td class="memItemLeft" align="right" valign="top"><a id="ad25cfde9a6e64d1a7070105122b78de5"></a>
<a class="el" href="classpcl_1_1search_1_1_kd_tree.html">pcl::search::KdTree</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::Ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#ad25cfde9a6e64d1a7070105122b78de5">voxel_kdtree_</a></td></tr>
<tr class="memdesc:ad25cfde9a6e64d1a7070105122b78de5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Contains a KDtree for the voxelized cloud <br /></td></tr>
<tr class="separator:ad25cfde9a6e64d1a7070105122b78de5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01d37b323655ee29d2ed084e976901a1"><td class="memItemLeft" align="right" valign="top"><a id="a01d37b323655ee29d2ed084e976901a1"></a>
OctreeAdjacencyT::Ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a01d37b323655ee29d2ed084e976901a1">adjacency_octree_</a></td></tr>
<tr class="memdesc:a01d37b323655ee29d2ed084e976901a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Octree Adjacency structure with leaves at voxel resolution <br /></td></tr>
<tr class="separator:a01d37b323655ee29d2ed084e976901a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ee5444ed0de3dc26427efd499740aad"><td class="memItemLeft" align="right" valign="top"><a id="a0ee5444ed0de3dc26427efd499740aad"></a>
PointCloudT::Ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a0ee5444ed0de3dc26427efd499740aad">voxel_centroid_cloud_</a></td></tr>
<tr class="memdesc:a0ee5444ed0de3dc26427efd499740aad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Contains the Voxelized centroid <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> <br /></td></tr>
<tr class="separator:a0ee5444ed0de3dc26427efd499740aad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a680d5c934537a7ff7a6b2cc22eccd42c"><td class="memItemLeft" align="right" valign="top"><a id="a680d5c934537a7ff7a6b2cc22eccd42c"></a>
NormalCloudT::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a680d5c934537a7ff7a6b2cc22eccd42c">input_normals_</a></td></tr>
<tr class="memdesc:a680d5c934537a7ff7a6b2cc22eccd42c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Contains the Voxelized centroid <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> <br /></td></tr>
<tr class="separator:a680d5c934537a7ff7a6b2cc22eccd42c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1387b181f0efb00ff6399d4b23cee7af"><td class="memItemLeft" align="right" valign="top"><a id="a1387b181f0efb00ff6399d4b23cee7af"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a1387b181f0efb00ff6399d4b23cee7af">color_importance_</a></td></tr>
<tr class="memdesc:a1387b181f0efb00ff6399d4b23cee7af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Importance of color in clustering <br /></td></tr>
<tr class="separator:a1387b181f0efb00ff6399d4b23cee7af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a740b88b089795ea53b42c49121653987"><td class="memItemLeft" align="right" valign="top"><a id="a740b88b089795ea53b42c49121653987"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a740b88b089795ea53b42c49121653987">spatial_importance_</a></td></tr>
<tr class="memdesc:a740b88b089795ea53b42c49121653987"><td class="mdescLeft">&#160;</td><td class="mdescRight">Importance of distance from seed center in clustering <br /></td></tr>
<tr class="separator:a740b88b089795ea53b42c49121653987"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a218bc6a57f29fb03195693f1b3e10d12"><td class="memItemLeft" align="right" valign="top"><a id="a218bc6a57f29fb03195693f1b3e10d12"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a218bc6a57f29fb03195693f1b3e10d12">normal_importance_</a></td></tr>
<tr class="memdesc:a218bc6a57f29fb03195693f1b3e10d12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Importance of similarity in normals for clustering <br /></td></tr>
<tr class="separator:a218bc6a57f29fb03195693f1b3e10d12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0349bfb9c9db7b0ea7b6dc951ecb6078"><td class="memItemLeft" align="right" valign="top"><a id="a0349bfb9c9db7b0ea7b6dc951ecb6078"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#a0349bfb9c9db7b0ea7b6dc951ecb6078">use_single_camera_transform_</a></td></tr>
<tr class="memdesc:a0349bfb9c9db7b0ea7b6dc951ecb6078"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether or not to use the transform compressing depth in Z This is only checked if it has been manually set by the user. The default behavior is to use the transform for organized, and not for unorganized. <br /></td></tr>
<tr class="separator:a0349bfb9c9db7b0ea7b6dc951ecb6078"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad0314b20af5f818269b74eb16185c96"><td class="memItemLeft" align="right" valign="top"><a id="aad0314b20af5f818269b74eb16185c96"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_supervoxel_clustering.html#aad0314b20af5f818269b74eb16185c96">use_default_transform_behaviour_</a></td></tr>
<tr class="memdesc:aad0314b20af5f818269b74eb16185c96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to use default transform behavior or not <br /></td></tr>
<tr class="separator:aad0314b20af5f818269b74eb16185c96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22b9f1f451935420b933caf7a40fd5da"><td class="memItemLeft" align="right" valign="top"><a id="a22b9f1f451935420b933caf7a40fd5da"></a>
HelperListT&#160;</td><td class="memItemRight" valign="bottom"><b>supervoxel_helpers_</b></td></tr>
<tr class="separator:a22b9f1f451935420b933caf7a40fd5da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab887a023039d060316de6602cf4ef321"><td class="memItemLeft" align="right" valign="top"><a id="ab887a023039d060316de6602cf4ef321"></a>
<a class="el" href="classpcl_1_1_stop_watch.html">StopWatch</a>&#160;</td><td class="memItemRight" valign="bottom"><b>timer_</b></td></tr>
<tr class="separator:ab887a023039d060316de6602cf4ef321"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
友元</h2></td></tr>
<tr class="memitem:ada1953f2699eb2bd4507c946886483e8"><td class="memItemLeft" align="right" valign="top"><a id="ada1953f2699eb2bd4507c946886483e8"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>SupervoxelHelper</b></td></tr>
<tr class="separator:ada1953f2699eb2bd4507c946886483e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae29bae835cac44ebc6dc80c87e9efeb1"><td class="memItemLeft" align="right" valign="top"><a id="ae29bae835cac44ebc6dc80c87e9efeb1"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>boost::checked_delete</b> (const typename <a class="el" href="classpcl_1_1_supervoxel_clustering.html">pcl::SupervoxelClustering</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::<a class="el" href="classpcl_1_1_supervoxel_clustering_1_1_supervoxel_helper.html">SupervoxelHelper</a> *)</td></tr>
<tr class="separator:ae29bae835cac44ebc6dc80c87e9efeb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
额外继承的成员函数</h2></td></tr>
<tr class="inherit_header pro_methods_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Protected 成员函数 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointT &gt;</a></td></tr>
<tr class="memitem:acceb20854934f4cf77e266eb5a44d4f0 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#acceb20854934f4cf77e266eb5a44d4f0">initCompute</a> ()</td></tr>
<tr class="memdesc:acceb20854934f4cf77e266eb5a44d4f0 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method should get called before starting the actual computation.  <a href="classpcl_1_1_p_c_l_base.html#acceb20854934f4cf77e266eb5a44d4f0">更多...</a><br /></td></tr>
<tr class="separator:acceb20854934f4cf77e266eb5a44d4f0 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc426c4eebb94b7734d4fa556bff1420 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="afc426c4eebb94b7734d4fa556bff1420"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#afc426c4eebb94b7734d4fa556bff1420">deinitCompute</a> ()</td></tr>
<tr class="memdesc:afc426c4eebb94b7734d4fa556bff1420 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method should get called after finishing the actual computation. <br /></td></tr>
<tr class="separator:afc426c4eebb94b7734d4fa556bff1420 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Protected 属性 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointT &gt;</a></td></tr>
<tr class="memitem:a09c70d8e06e3fb4f07903fe6f8d67869 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a09c70d8e06e3fb4f07903fe6f8d67869"></a>
PointCloudConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a></td></tr>
<tr class="memdesc:a09c70d8e06e3fb4f07903fe6f8d67869 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">The input point cloud dataset. <br /></td></tr>
<tr class="separator:a09c70d8e06e3fb4f07903fe6f8d67869 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaee847c8a517ebf365bad2cb182a6626 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="aaee847c8a517ebf365bad2cb182a6626"></a>
IndicesPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#aaee847c8a517ebf365bad2cb182a6626">indices_</a></td></tr>
<tr class="memdesc:aaee847c8a517ebf365bad2cb182a6626 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">A pointer to the vector of point indices to use. <br /></td></tr>
<tr class="separator:aaee847c8a517ebf365bad2cb182a6626 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada1eadb824d34ca9206a86343d9760bb inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ada1eadb824d34ca9206a86343d9760bb"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#ada1eadb824d34ca9206a86343d9760bb">use_indices_</a></td></tr>
<tr class="memdesc:ada1eadb824d34ca9206a86343d9760bb inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to true if point indices are used. <br /></td></tr>
<tr class="separator:ada1eadb824d34ca9206a86343d9760bb inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adadb0299f144528020ed558af6879662 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="adadb0299f144528020ed558af6879662"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#adadb0299f144528020ed558af6879662">fake_indices_</a></td></tr>
<tr class="memdesc:adadb0299f144528020ed558af6879662 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">If no set of indices are given, we construct a set of fake indices that mimic the input <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a>. <br /></td></tr>
<tr class="separator:adadb0299f144528020ed558af6879662 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><h3>template&lt;typename PointT&gt;<br />
class pcl::SupervoxelClustering&lt; PointT &gt;</h3>

<p>Implements a supervoxel algorithm based on voxel structure, normals, and rgb values </p>
<dl class="section note"><dt>注解</dt><dd>Supervoxels are oversegmented volumetric patches (usually surfaces) </dd>
<dd>
Usually, color isn't needed (and can be detrimental)- spatial structure is mainly used<ul>
<li>J. Papon, A. Abramov, M. Schoeler, F. Woergoetter Voxel <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> Connectivity Segmentation - Supervoxels from PointClouds In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) 2013</li>
</ul>
</dd></dl>
<dl class="section author"><dt>作者</dt><dd>Jeremie Papon (<a href="#" onclick="location.href='mai'+'lto:'+'jpa'+'po'+'n@g'+'ma'+'il.'+'co'+'m'; return false;">jpapo<span style="display: none;">.nosp@m.</span>n@gm<span style="display: none;">.nosp@m.</span>ail.c<span style="display: none;">.nosp@m.</span>om</a>) </dd></dl>
</div><h2 class="groupheader">构造及析构函数说明</h2>
<a id="aa91db439be84dadc9143483aa2240835"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa91db439be84dadc9143483aa2240835">&#9670;&nbsp;</a></span>SupervoxelClustering()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1_supervoxel_clustering.html">pcl::SupervoxelClustering</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::<a class="el" href="classpcl_1_1_supervoxel_clustering.html">SupervoxelClustering</a> </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>voxel_resolution</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>seed_resolution</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor that sets default values for member variables. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">voxel_resolution</td><td>The resolution (in meters) of voxels used </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">seed_resolution</td><td>The average size (in meters) of resulting supervoxels </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                                                                                                    :</div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;  <a class="code" href="classpcl_1_1_supervoxel_clustering.html#aa6068bcabad2d3b1e6870b489354006c">resolution_</a> (voxel_resolution),</div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;  <a class="code" href="classpcl_1_1_supervoxel_clustering.html#a6bd458afc79e5b4569d07b582799c371">seed_resolution_</a> (seed_resolution),</div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;  <a class="code" href="classpcl_1_1_supervoxel_clustering.html#a01d37b323655ee29d2ed084e976901a1">adjacency_octree_</a> (),</div>
<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;  <a class="code" href="classpcl_1_1_supervoxel_clustering.html#a0ee5444ed0de3dc26427efd499740aad">voxel_centroid_cloud_</a> (),</div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;  <a class="code" href="classpcl_1_1_supervoxel_clustering.html#a1387b181f0efb00ff6399d4b23cee7af">color_importance_</a> (0.1f),</div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;  <a class="code" href="classpcl_1_1_supervoxel_clustering.html#a740b88b089795ea53b42c49121653987">spatial_importance_</a> (0.4f),</div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;  <a class="code" href="classpcl_1_1_supervoxel_clustering.html#a218bc6a57f29fb03195693f1b3e10d12">normal_importance_</a> (1.0f),</div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;  <a class="code" href="classpcl_1_1_supervoxel_clustering.html#aad0314b20af5f818269b74eb16185c96">use_default_transform_behaviour_</a> (<span class="keyword">true</span>)</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;{</div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;  <a class="code" href="classpcl_1_1_supervoxel_clustering.html#a01d37b323655ee29d2ed084e976901a1">adjacency_octree_</a>.reset (<span class="keyword">new</span> OctreeAdjacencyT (<a class="code" href="classpcl_1_1_supervoxel_clustering.html#aa6068bcabad2d3b1e6870b489354006c">resolution_</a>));</div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_supervoxel_clustering_html_a01d37b323655ee29d2ed084e976901a1"><div class="ttname"><a href="classpcl_1_1_supervoxel_clustering.html#a01d37b323655ee29d2ed084e976901a1">pcl::SupervoxelClustering::adjacency_octree_</a></div><div class="ttdeci">OctreeAdjacencyT::Ptr adjacency_octree_</div><div class="ttdoc">Octree Adjacency structure with leaves at voxel resolution</div><div class="ttdef"><b>Definition:</b> supervoxel_clustering.h:393</div></div>
<div class="ttc" id="aclasspcl_1_1_supervoxel_clustering_html_a0ee5444ed0de3dc26427efd499740aad"><div class="ttname"><a href="classpcl_1_1_supervoxel_clustering.html#a0ee5444ed0de3dc26427efd499740aad">pcl::SupervoxelClustering::voxel_centroid_cloud_</a></div><div class="ttdeci">PointCloudT::Ptr voxel_centroid_cloud_</div><div class="ttdoc">Contains the Voxelized centroid Cloud</div><div class="ttdef"><b>Definition:</b> supervoxel_clustering.h:396</div></div>
<div class="ttc" id="aclasspcl_1_1_supervoxel_clustering_html_a1387b181f0efb00ff6399d4b23cee7af"><div class="ttname"><a href="classpcl_1_1_supervoxel_clustering.html#a1387b181f0efb00ff6399d4b23cee7af">pcl::SupervoxelClustering::color_importance_</a></div><div class="ttdeci">float color_importance_</div><div class="ttdoc">Importance of color in clustering</div><div class="ttdef"><b>Definition:</b> supervoxel_clustering.h:402</div></div>
<div class="ttc" id="aclasspcl_1_1_supervoxel_clustering_html_a218bc6a57f29fb03195693f1b3e10d12"><div class="ttname"><a href="classpcl_1_1_supervoxel_clustering.html#a218bc6a57f29fb03195693f1b3e10d12">pcl::SupervoxelClustering::normal_importance_</a></div><div class="ttdeci">float normal_importance_</div><div class="ttdoc">Importance of similarity in normals for clustering</div><div class="ttdef"><b>Definition:</b> supervoxel_clustering.h:406</div></div>
<div class="ttc" id="aclasspcl_1_1_supervoxel_clustering_html_a6bd458afc79e5b4569d07b582799c371"><div class="ttname"><a href="classpcl_1_1_supervoxel_clustering.html#a6bd458afc79e5b4569d07b582799c371">pcl::SupervoxelClustering::seed_resolution_</a></div><div class="ttdeci">float seed_resolution_</div><div class="ttdoc">Stores the resolution used to seed the superpixels</div><div class="ttdef"><b>Definition:</b> supervoxel_clustering.h:379</div></div>
<div class="ttc" id="aclasspcl_1_1_supervoxel_clustering_html_a740b88b089795ea53b42c49121653987"><div class="ttname"><a href="classpcl_1_1_supervoxel_clustering.html#a740b88b089795ea53b42c49121653987">pcl::SupervoxelClustering::spatial_importance_</a></div><div class="ttdeci">float spatial_importance_</div><div class="ttdoc">Importance of distance from seed center in clustering</div><div class="ttdef"><b>Definition:</b> supervoxel_clustering.h:404</div></div>
<div class="ttc" id="aclasspcl_1_1_supervoxel_clustering_html_aa6068bcabad2d3b1e6870b489354006c"><div class="ttname"><a href="classpcl_1_1_supervoxel_clustering.html#aa6068bcabad2d3b1e6870b489354006c">pcl::SupervoxelClustering::resolution_</a></div><div class="ttdeci">float resolution_</div><div class="ttdoc">Stores the resolution used in the octree</div><div class="ttdef"><b>Definition:</b> supervoxel_clustering.h:376</div></div>
<div class="ttc" id="aclasspcl_1_1_supervoxel_clustering_html_aad0314b20af5f818269b74eb16185c96"><div class="ttname"><a href="classpcl_1_1_supervoxel_clustering.html#aad0314b20af5f818269b74eb16185c96">pcl::SupervoxelClustering::use_default_transform_behaviour_</a></div><div class="ttdeci">bool use_default_transform_behaviour_</div><div class="ttdoc">Whether to use default transform behavior or not</div><div class="ttdef"><b>Definition:</b> supervoxel_clustering.h:414</div></div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">成员函数说明</h2>
<a id="a9dee2c8a749e1491f43927b1c025401f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9dee2c8a749e1491f43927b1c025401f">&#9670;&nbsp;</a></span>createSupervoxelHelpers()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_supervoxel_clustering.html">pcl::SupervoxelClustering</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::createSupervoxelHelpers </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>seed_indices</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This method creates the internal supervoxel helpers based on the provided seed points </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">seed_indices</td><td>Indices of the leaves to use as seeds </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;{</div>
<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;  </div>
<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;  supervoxel_helpers_.clear ();</div>
<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; seed_indices.size (); ++i)</div>
<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;  {</div>
<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;    supervoxel_helpers_.push_back (<span class="keyword">new</span> SupervoxelHelper(i+1,<span class="keyword">this</span>));</div>
<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;    <span class="comment">//Find which leaf corresponds to this seed index</span></div>
<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;    LeafContainerT* seed_leaf = <a class="code" href="classpcl_1_1_supervoxel_clustering.html#a01d37b323655ee29d2ed084e976901a1">adjacency_octree_</a>-&gt;at(seed_indices[i]);<span class="comment">//adjacency_octree_-&gt;getLeafContainerAtPoint (seed_points[i]);</span></div>
<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;    <span class="keywordflow">if</span> (seed_leaf)</div>
<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;    {</div>
<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;      supervoxel_helpers_.back ().addLeaf (seed_leaf);</div>
<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;    }</div>
<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;    <span class="keywordflow">else</span></div>
<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;    {</div>
<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;      PCL_WARN (<span class="stringliteral">&quot;Could not find leaf in pcl::SupervoxelClustering&lt;PointT&gt;::createSupervoxelHelpers - supervoxel will be deleted \n&quot;</span>);</div>
<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;    }</div>
<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;  }</div>
<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;  </div>
<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a938e1cbb1bbbc364c9113d7971b362e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a938e1cbb1bbbc364c9113d7971b362e3">&#9670;&nbsp;</a></span>extract()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_supervoxel_clustering.html">pcl::SupervoxelClustering</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::extract </td>
          <td>(</td>
          <td class="paramtype">std::map&lt; uint32_t, typename <a class="el" href="classpcl_1_1_supervoxel.html">Supervoxel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::Ptr &gt; &amp;&#160;</td>
          <td class="paramname"><em>supervoxel_clusters</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This method launches the segmentation algorithm and returns the supervoxels that were obtained during the segmentation. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">supervoxel_clusters</td><td>A map of labels to pointers to supervoxel structures </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;{</div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;  <span class="comment">//timer_.reset ();</span></div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;  <span class="comment">//double t_start = timer_.getTime ();</span></div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;  <span class="comment">//std::cout &lt;&lt; &quot;Init compute  \n&quot;;</span></div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;  <span class="keywordtype">bool</span> segmentation_is_possible = <a class="code" href="classpcl_1_1_p_c_l_base.html#acceb20854934f4cf77e266eb5a44d4f0">initCompute</a> ();</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;  <span class="keywordflow">if</span> ( !segmentation_is_possible )</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;  {</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <a class="code" href="classpcl_1_1_p_c_l_base.html#afc426c4eebb94b7734d4fa556bff1420">deinitCompute</a> ();</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;  }</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;  </div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;  <span class="comment">//std::cout &lt;&lt; &quot;Preparing for segmentation \n&quot;;</span></div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;  segmentation_is_possible = <a class="code" href="classpcl_1_1_supervoxel_clustering.html#aad09607c53e620e324237c8286883575">prepareForSegmentation</a> ();</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;  <span class="keywordflow">if</span> ( !segmentation_is_possible )</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;  {</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <a class="code" href="classpcl_1_1_p_c_l_base.html#afc426c4eebb94b7734d4fa556bff1420">deinitCompute</a> ();</div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;  }</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;  </div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;  <span class="comment">//double t_prep = timer_.getTime ();</span></div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;  <span class="comment">//std::cout &lt;&lt; &quot;Placing Seeds&quot; &lt;&lt; std::endl;</span></div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;  std::vector&lt;int&gt; seed_indices;</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;  <a class="code" href="classpcl_1_1_supervoxel_clustering.html#a597347a31afc8787fc9a4067ccf0b0e1">selectInitialSupervoxelSeeds</a> (seed_indices);</div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;  <span class="comment">//std::cout &lt;&lt; &quot;Creating helpers &quot;&lt;&lt;std::endl;</span></div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;  <a class="code" href="classpcl_1_1_supervoxel_clustering.html#a9dee2c8a749e1491f43927b1c025401f">createSupervoxelHelpers</a> (seed_indices);</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;  <span class="comment">//double t_seeds = timer_.getTime ();</span></div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;  </div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;  </div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;  <span class="comment">//std::cout &lt;&lt; &quot;Expanding the supervoxels&quot; &lt;&lt; std::endl;</span></div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;  <span class="keywordtype">int</span> max_depth = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (1.8f*<a class="code" href="classpcl_1_1_supervoxel_clustering.html#a6bd458afc79e5b4569d07b582799c371">seed_resolution_</a>/<a class="code" href="classpcl_1_1_supervoxel_clustering.html#aa6068bcabad2d3b1e6870b489354006c">resolution_</a>);</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;  <a class="code" href="classpcl_1_1_supervoxel_clustering.html#a8d9e64bc6c4ca7b94afe457d4df46bf1">expandSupervoxels</a> (max_depth);</div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;  <span class="comment">//double t_iterate = timer_.getTime ();</span></div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    </div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;  <span class="comment">//std::cout &lt;&lt; &quot;Making Supervoxel structures&quot; &lt;&lt; std::endl;</span></div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;  <a class="code" href="classpcl_1_1_supervoxel_clustering.html#af5b42dc7dcd9c348a94aef941ad246c4">makeSupervoxels</a> (supervoxel_clusters);</div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;  <span class="comment">//double t_supervoxels = timer_.getTime ();</span></div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;  </div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160; <span class="comment">// std::cout &lt;&lt; &quot;--------------------------------- Timing Report --------------------------------- \n&quot;;</span></div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160; <span class="comment">// std::cout &lt;&lt; &quot;Time to prep (normals, neighbors, voxelization)=&quot;&lt;&lt;t_prep-t_start&lt;&lt;&quot; ms\n&quot;;</span></div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160; <span class="comment">// std::cout &lt;&lt; &quot;Time to seed clusters                          =&quot;&lt;&lt;t_seeds-t_prep&lt;&lt;&quot; ms\n&quot;;</span></div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160; <span class="comment">// std::cout &lt;&lt; &quot;Time to expand clusters                        =&quot;&lt;&lt;t_iterate-t_seeds&lt;&lt;&quot; ms\n&quot;;</span></div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160; <span class="comment">// std::cout &lt;&lt; &quot;Time to create supervoxel structures           =&quot;&lt;&lt;t_supervoxels-t_iterate&lt;&lt;&quot; ms\n&quot;;</span></div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; <span class="comment">// std::cout &lt;&lt; &quot;Total run time                                 =&quot;&lt;&lt;t_supervoxels-t_start&lt;&lt;&quot; ms\n&quot;;</span></div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160; <span class="comment">// std::cout &lt;&lt; &quot;--------------------------------------------------------------------------------- \n&quot;;</span></div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;  </div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;  <a class="code" href="classpcl_1_1_p_c_l_base.html#afc426c4eebb94b7734d4fa556bff1420">deinitCompute</a> ();</div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_p_c_l_base_html_acceb20854934f4cf77e266eb5a44d4f0"><div class="ttname"><a href="classpcl_1_1_p_c_l_base.html#acceb20854934f4cf77e266eb5a44d4f0">pcl::PCLBase::initCompute</a></div><div class="ttdeci">bool initCompute()</div><div class="ttdoc">This method should get called before starting the actual computation.</div><div class="ttdef"><b>Definition:</b> pcl_base.hpp:139</div></div>
<div class="ttc" id="aclasspcl_1_1_p_c_l_base_html_afc426c4eebb94b7734d4fa556bff1420"><div class="ttname"><a href="classpcl_1_1_p_c_l_base.html#afc426c4eebb94b7734d4fa556bff1420">pcl::PCLBase::deinitCompute</a></div><div class="ttdeci">bool deinitCompute()</div><div class="ttdoc">This method should get called after finishing the actual computation.</div><div class="ttdef"><b>Definition:</b> pcl_base.hpp:174</div></div>
<div class="ttc" id="aclasspcl_1_1_supervoxel_clustering_html_a597347a31afc8787fc9a4067ccf0b0e1"><div class="ttname"><a href="classpcl_1_1_supervoxel_clustering.html#a597347a31afc8787fc9a4067ccf0b0e1">pcl::SupervoxelClustering::selectInitialSupervoxelSeeds</a></div><div class="ttdeci">void selectInitialSupervoxelSeeds(std::vector&lt; int &gt; &amp;seed_indices)</div><div class="ttdoc">This selects points to use as initial supervoxel centroids</div><div class="ttdef"><b>Definition:</b> supervoxel_clustering.hpp:380</div></div>
<div class="ttc" id="aclasspcl_1_1_supervoxel_clustering_html_a8d9e64bc6c4ca7b94afe457d4df46bf1"><div class="ttname"><a href="classpcl_1_1_supervoxel_clustering.html#a8d9e64bc6c4ca7b94afe457d4df46bf1">pcl::SupervoxelClustering::expandSupervoxels</a></div><div class="ttdeci">void expandSupervoxels(int depth)</div><div class="ttdoc">This performs the superpixel evolution</div><div class="ttdef"><b>Definition:</b> supervoxel_clustering.hpp:308</div></div>
<div class="ttc" id="aclasspcl_1_1_supervoxel_clustering_html_a9dee2c8a749e1491f43927b1c025401f"><div class="ttname"><a href="classpcl_1_1_supervoxel_clustering.html#a9dee2c8a749e1491f43927b1c025401f">pcl::SupervoxelClustering::createSupervoxelHelpers</a></div><div class="ttdeci">void createSupervoxelHelpers(std::vector&lt; int &gt; &amp;seed_indices)</div><div class="ttdoc">This method creates the internal supervoxel helpers based on the provided seed points</div><div class="ttdef"><b>Definition:</b> supervoxel_clustering.hpp:358</div></div>
<div class="ttc" id="aclasspcl_1_1_supervoxel_clustering_html_aad09607c53e620e324237c8286883575"><div class="ttname"><a href="classpcl_1_1_supervoxel_clustering.html#aad09607c53e620e324237c8286883575">pcl::SupervoxelClustering::prepareForSegmentation</a></div><div class="ttdeci">virtual bool prepareForSegmentation()</div><div class="ttdoc">This method simply checks if it is possible to execute the segmentation algorithm with the current se...</div><div class="ttdef"><b>Definition:</b> supervoxel_clustering.hpp:195</div></div>
<div class="ttc" id="aclasspcl_1_1_supervoxel_clustering_html_af5b42dc7dcd9c348a94aef941ad246c4"><div class="ttname"><a href="classpcl_1_1_supervoxel_clustering.html#af5b42dc7dcd9c348a94aef941ad246c4">pcl::SupervoxelClustering::makeSupervoxels</a></div><div class="ttdeci">void makeSupervoxels(std::map&lt; uint32_t, typename Supervoxel&lt; PointT &gt;::Ptr &gt; &amp;supervoxel_clusters)</div><div class="ttdoc">Constructs the map of supervoxel clusters from the internal supervoxel helpers</div><div class="ttdef"><b>Definition:</b> supervoxel_clustering.hpp:340</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a1ddb159d39a3da31c756a66786b232a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1ddb159d39a3da31c756a66786b232a8">&#9670;&nbsp;</a></span>getColoredCloud()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt;<a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointXYZRGBA</a>&gt;::Ptr <a class="el" href="classpcl_1_1_supervoxel_clustering.html">pcl::SupervoxelClustering</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getColoredCloud </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns an <a class="el" href="structpcl_1_1_r_g_b.html" title="A structure representing RGB color information.">RGB</a> colorized cloud showing superpixels Otherwise it returns an empty pointer. Points that belong to the same supervoxel have the same color. But this function doesn't guarantee that different segments will have different color(it's random). Points that are unlabeled will be black </p>
<dl class="section note"><dt>注解</dt><dd>This will expand the label_colors_ vector so that it can accomodate all labels </dd></dl>
<div class="fragment"><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;      { </div>
<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        <span class="keywordflow">return</span> boost::shared_ptr&lt;pcl::PointCloud&lt;PointXYZRGBA&gt; &gt; (<span class="keyword">new</span> <a class="code" href="classpcl_1_1_point_cloud.html">pcl::PointCloud&lt;PointXYZRGBA&gt;</a>);</div>
<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;      }</div>
<div class="ttc" id="aclasspcl_1_1_point_cloud_html"><div class="ttname"><a href="classpcl_1_1_point_cloud.html">pcl::PointCloud&lt; PointXYZRGBA &gt;</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a47bf1608e4ff872353503bce404db736"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a47bf1608e4ff872353503bce404db736">&#9670;&nbsp;</a></span>getColoredVoxelCloud()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt;<a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">pcl::PointXYZRGBA</a>&gt;::Ptr <a class="el" href="classpcl_1_1_supervoxel_clustering.html">pcl::SupervoxelClustering</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getColoredVoxelCloud </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns an <a class="el" href="structpcl_1_1_r_g_b.html" title="A structure representing RGB color information.">RGB</a> colorized voxelized cloud showing superpixels Otherwise it returns an empty pointer. Points that belong to the same supervoxel have the same color. But this function doesn't guarantee that different segments will have different color(it's random). Points that are unlabeled will be black </p>
<dl class="section note"><dt>注解</dt><dd>This will expand the label_colors_ vector so that it can accomodate all labels </dd></dl>
<div class="fragment"><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;      {</div>
<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;        <span class="keywordflow">return</span> boost::shared_ptr&lt;pcl::PointCloud&lt;PointXYZRGBA&gt; &gt; (<span class="keyword">new</span> <a class="code" href="classpcl_1_1_point_cloud.html">pcl::PointCloud&lt;PointXYZRGBA&gt;</a>);</div>
<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a92f5536d132225ee24c33fa967a37cf3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a92f5536d132225ee24c33fa967a37cf3">&#9670;&nbsp;</a></span>getSupervoxelAdjacency()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_supervoxel_clustering.html">pcl::SupervoxelClustering</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getSupervoxelAdjacency </td>
          <td>(</td>
          <td class="paramtype">std::multimap&lt; uint32_t, uint32_t &gt; &amp;&#160;</td>
          <td class="paramname"><em>label_adjacency</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get a multimap which gives supervoxel adjacency </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">label_adjacency</td><td>Multi-Map which maps a supervoxel label to all adjacent supervoxel labels </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;{</div>
<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;  label_adjacency.clear ();</div>
<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;  <span class="keywordflow">for</span> (<span class="keyword">typename</span> HelperListT::const_iterator sv_itr = supervoxel_helpers_.cbegin (); sv_itr != supervoxel_helpers_.cend (); ++sv_itr)</div>
<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;  {</div>
<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;    uint32_t label = sv_itr-&gt;getLabel ();</div>
<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;    std::set&lt;uint32_t&gt; neighbor_labels;</div>
<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;    sv_itr-&gt;getNeighborLabels (neighbor_labels);</div>
<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;    <span class="keywordflow">for</span> (std::set&lt;uint32_t&gt;::iterator label_itr = neighbor_labels.begin (); label_itr != neighbor_labels.end (); ++label_itr)</div>
<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;      label_adjacency.insert (std::pair&lt;uint32_t,uint32_t&gt; (label, *label_itr) );</div>
<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;    <span class="comment">//if (neighbor_labels.size () == 0)</span></div>
<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;    <span class="comment">//  std::cout &lt;&lt; label&lt;&lt;&quot;(size=&quot;&lt;&lt;sv_itr-&gt;size () &lt;&lt; &quot;) has &quot;&lt;&lt;neighbor_labels.size () &lt;&lt; &quot;\n&quot;;</span></div>
<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;  }</div>
<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="abc98c38e820acde1fb8dc87c66ddc5c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abc98c38e820acde1fb8dc87c66ddc5c3">&#9670;&nbsp;</a></span>getSupervoxelAdjacencyList()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_supervoxel_clustering.html">pcl::SupervoxelClustering</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getSupervoxelAdjacencyList </td>
          <td>(</td>
          <td class="paramtype">VoxelAdjacencyList &amp;&#160;</td>
          <td class="paramname"><em>adjacency_list_arg</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the adjacency list (Boost Graph library) which gives connections between supervoxels </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">adjacency_list_arg</td><td>BGL graph where supervoxel labels are vertices, edges are touching relationships </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;{</div>
<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;  adjacency_list_arg.clear ();</div>
<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;    <span class="comment">//Add a vertex for each label, store ids in map</span></div>
<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;  std::map &lt;uint32_t, VoxelID&gt; label_ID_map;</div>
<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;  <span class="keywordflow">for</span> (<span class="keyword">typename</span> HelperListT::const_iterator sv_itr = supervoxel_helpers_.cbegin (); sv_itr != supervoxel_helpers_.cend (); ++sv_itr)</div>
<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;  {</div>
<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;    VoxelID node_id = add_vertex (adjacency_list_arg);</div>
<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;    adjacency_list_arg[node_id] = (sv_itr-&gt;getLabel ());</div>
<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;    label_ID_map.insert (std::make_pair (sv_itr-&gt;getLabel (), node_id));</div>
<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;  }</div>
<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;  </div>
<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;  <span class="keywordflow">for</span> (<span class="keyword">typename</span> HelperListT::const_iterator sv_itr = supervoxel_helpers_.cbegin (); sv_itr != supervoxel_helpers_.cend (); ++sv_itr)</div>
<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;  {</div>
<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;    uint32_t label = sv_itr-&gt;getLabel ();</div>
<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;    std::set&lt;uint32_t&gt; neighbor_labels;</div>
<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;    sv_itr-&gt;getNeighborLabels (neighbor_labels);</div>
<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;    <span class="keywordflow">for</span> (std::set&lt;uint32_t&gt;::iterator label_itr = neighbor_labels.begin (); label_itr != neighbor_labels.end (); ++label_itr)</div>
<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;    {</div>
<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;      <span class="keywordtype">bool</span> edge_added;</div>
<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;      EdgeID edge;</div>
<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;      VoxelID u = (label_ID_map.find (label))-&gt;second;</div>
<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;      VoxelID v = (label_ID_map.find (*label_itr))-&gt;second;</div>
<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;      boost::tie (edge, edge_added) = add_edge (u,v,adjacency_list_arg);</div>
<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;      <span class="comment">//Calc distance between centers, set as edge weight</span></div>
<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;      <span class="keywordflow">if</span> (edge_added)</div>
<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;      {</div>
<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;        VoxelData centroid_data = (sv_itr)-&gt;getCentroid ();</div>
<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;        <span class="comment">//Find the neighbhor with this label</span></div>
<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;        VoxelData neighb_centroid_data;</div>
<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;        </div>
<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">typename</span> HelperListT::const_iterator neighb_itr = supervoxel_helpers_.cbegin (); neighb_itr != supervoxel_helpers_.cend (); ++neighb_itr)</div>
<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;        {</div>
<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;          <span class="keywordflow">if</span> (neighb_itr-&gt;getLabel () == (*label_itr))</div>
<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;          {</div>
<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;            neighb_centroid_data = neighb_itr-&gt;getCentroid ();</div>
<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;            <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;          }</div>
<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;        }</div>
<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;        </div>
<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;        <span class="keywordtype">float</span> length = <a class="code" href="classpcl_1_1_supervoxel_clustering.html#a76f8677b4113dcdf3c1e2d95e4275e6e">voxelDataDistance</a> (centroid_data, neighb_centroid_data);</div>
<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;        adjacency_list_arg[edge] = length;</div>
<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;      }</div>
<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;    }</div>
<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;      </div>
<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;  }</div>
<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160; </div>
<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_supervoxel_clustering_html_a76f8677b4113dcdf3c1e2d95e4275e6e"><div class="ttname"><a href="classpcl_1_1_supervoxel_clustering.html#a76f8677b4113dcdf3c1e2d95e4275e6e">pcl::SupervoxelClustering::voxelDataDistance</a></div><div class="ttdeci">float voxelDataDistance(const VoxelData &amp;v1, const VoxelData &amp;v2) const</div><div class="ttdoc">Distance function used for comparing voxelDatas</div><div class="ttdef"><b>Definition:</b> supervoxel_clustering.hpp:479</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a4cf4c3c376c25b784c35faff05326d88"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4cf4c3c376c25b784c35faff05326d88">&#9670;&nbsp;</a></span>makeSupervoxelNormalCloud()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_normal.html">pcl::PointNormal</a> &gt;::Ptr <a class="el" href="classpcl_1_1_supervoxel_clustering.html">pcl::SupervoxelClustering</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::makeSupervoxelNormalCloud </td>
          <td>(</td>
          <td class="paramtype">std::map&lt; uint32_t, typename <a class="el" href="classpcl_1_1_supervoxel.html">Supervoxel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::Ptr &gt; &amp;&#160;</td>
          <td class="paramname"><em>supervoxel_clusters</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Static helper function which returns a pointcloud of normals for the input supervoxels </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">supervoxel_clusters</td><td><a class="el" href="classpcl_1_1_supervoxel.html" title="Supervoxel container class - stores a cluster extracted using supervoxel clustering">Supervoxel</a> cluster map coming from this class </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd><a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a> of PointNormals of the supervoxels </dd></dl>
<div class="fragment"><div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;{</div>
<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;  pcl::PointCloud&lt;pcl::PointNormal&gt;::Ptr normal_cloud (<span class="keyword">new</span> <a class="code" href="classpcl_1_1_point_cloud.html">pcl::PointCloud&lt;pcl::PointNormal&gt;</a>);</div>
<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;  normal_cloud-&gt;resize (supervoxel_clusters.size ());</div>
<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;  <span class="keyword">typename</span> std::map &lt;uint32_t, typename pcl::Supervoxel&lt;PointT&gt;::Ptr&gt;::iterator sv_itr,sv_itr_end;</div>
<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;  sv_itr = supervoxel_clusters.begin ();</div>
<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;  sv_itr_end = supervoxel_clusters.end ();</div>
<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;  pcl::PointCloud&lt;pcl::PointNormal&gt;::iterator normal_cloud_itr = normal_cloud-&gt;begin ();</div>
<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;  <span class="keywordflow">for</span> ( ; sv_itr != sv_itr_end; ++sv_itr, ++normal_cloud_itr)</div>
<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;  {</div>
<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;    (sv_itr-&gt;second)-&gt;getCentroidPointNormal (*normal_cloud_itr);</div>
<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;  }</div>
<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;  <span class="keywordflow">return</span> normal_cloud;</div>
<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a43b9d69751345e0d41d461233bc2559f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a43b9d69751345e0d41d461233bc2559f">&#9670;&nbsp;</a></span>refineSupervoxels()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_supervoxel_clustering.html">pcl::SupervoxelClustering</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::refineSupervoxels </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>num_itr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::map&lt; uint32_t, typename <a class="el" href="classpcl_1_1_supervoxel.html">Supervoxel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::Ptr &gt; &amp;&#160;</td>
          <td class="paramname"><em>supervoxel_clusters</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This method refines the calculated supervoxels - may only be called after extract </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">num_itr</td><td>The number of iterations of refinement to be done (2 or 3 is usually sufficient) </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">supervoxel_clusters</td><td>The resulting refined supervoxels </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;{</div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;  <span class="keywordflow">if</span> (supervoxel_helpers_.size () == 0)</div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;  {</div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    PCL_ERROR (<span class="stringliteral">&quot;[pcl::SupervoxelClustering::refineVoxelNormals] Supervoxels not extracted, doing nothing - (Call extract first!) \n&quot;</span>);</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;  }</div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160; </div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;  <span class="keywordtype">int</span> max_depth = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (1.8f*<a class="code" href="classpcl_1_1_supervoxel_clustering.html#a6bd458afc79e5b4569d07b582799c371">seed_resolution_</a>/<a class="code" href="classpcl_1_1_supervoxel_clustering.html#aa6068bcabad2d3b1e6870b489354006c">resolution_</a>);</div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; num_itr; ++i)</div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;  {</div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">typename</span> HelperListT::iterator sv_itr = supervoxel_helpers_.begin (); sv_itr != supervoxel_helpers_.end (); ++sv_itr)</div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    {</div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;      sv_itr-&gt;refineNormals ();</div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    }</div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    </div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    <a class="code" href="classpcl_1_1_supervoxel_clustering.html#a5a1f44fad93be1fc56ecd4483aba973c">reseedSupervoxels</a> ();</div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    <a class="code" href="classpcl_1_1_supervoxel_clustering.html#a8d9e64bc6c4ca7b94afe457d4df46bf1">expandSupervoxels</a> (max_depth);</div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;  }</div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;  </div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160; </div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;  <a class="code" href="classpcl_1_1_supervoxel_clustering.html#af5b42dc7dcd9c348a94aef941ad246c4">makeSupervoxels</a> (supervoxel_clusters);</div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160; </div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_supervoxel_clustering_html_a5a1f44fad93be1fc56ecd4483aba973c"><div class="ttname"><a href="classpcl_1_1_supervoxel_clustering.html#a5a1f44fad93be1fc56ecd4483aba973c">pcl::SupervoxelClustering::reseedSupervoxels</a></div><div class="ttdeci">void reseedSupervoxels()</div><div class="ttdoc">Reseeds the supervoxels by finding the voxel closest to current centroid</div><div class="ttdef"><b>Definition:</b> supervoxel_clustering.hpp:438</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a597347a31afc8787fc9a4067ccf0b0e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a597347a31afc8787fc9a4067ccf0b0e1">&#9670;&nbsp;</a></span>selectInitialSupervoxelSeeds()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_supervoxel_clustering.html">pcl::SupervoxelClustering</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::selectInitialSupervoxelSeeds </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>seed_indices</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This selects points to use as initial supervoxel centroids </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">seed_indices</td><td>The selected leaf indices </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;{</div>
<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;  <span class="comment">//TODO THIS IS BAD - SEEDING SHOULD BE BETTER</span></div>
<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;  <span class="comment">//TODO Switch to assigning leaves! Don&#39;t use Octree!</span></div>
<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;  </div>
<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160; <span class="comment">// std::cout &lt;&lt; &quot;Size of centroid cloud=&quot;&lt;&lt;voxel_centroid_cloud_-&gt;size ()&lt;&lt;&quot;, seeding resolution=&quot;&lt;&lt;seed_resolution_&lt;&lt;&quot;\n&quot;;</span></div>
<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;  <span class="comment">//Initialize octree with voxel centroids</span></div>
<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;  <a class="code" href="classpcl_1_1octree_1_1_octree_point_cloud_search.html">pcl::octree::OctreePointCloudSearch &lt;PointT&gt;</a> seed_octree (<a class="code" href="classpcl_1_1_supervoxel_clustering.html#a6bd458afc79e5b4569d07b582799c371">seed_resolution_</a>);</div>
<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;  seed_octree.setInputCloud (<a class="code" href="classpcl_1_1_supervoxel_clustering.html#a0ee5444ed0de3dc26427efd499740aad">voxel_centroid_cloud_</a>);</div>
<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;  seed_octree.addPointsFromInputCloud ();</div>
<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160; <span class="comment">// std::cout &lt;&lt; &quot;Size of octree =&quot;&lt;&lt;seed_octree.getLeafCount ()&lt;&lt;&quot;\n&quot;;</span></div>
<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;  std::vector&lt;PointT, Eigen::aligned_allocator&lt;PointT&gt; &gt; voxel_centers; </div>
<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;  <span class="keywordtype">int</span> num_seeds = seed_octree.getOccupiedVoxelCenters(voxel_centers); </div>
<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;  <span class="comment">//std::cout &lt;&lt; &quot;Number of seed points before filtering=&quot;&lt;&lt;voxel_centers.size ()&lt;&lt;std::endl;</span></div>
<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;  </div>
<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;  std::vector&lt;int&gt; seed_indices_orig;</div>
<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;  seed_indices_orig.resize (num_seeds, 0);</div>
<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;  seed_indices.clear ();</div>
<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;  std::vector&lt;int&gt; closest_index;</div>
<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;  std::vector&lt;float&gt; <a class="code" href="common_2include_2pcl_2common_2geometry_8h.html#a2fc89f0c26b7c7377fcd2851fa933b87">distance</a>;</div>
<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;  closest_index.resize(1,0);</div>
<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;  <a class="code" href="common_2include_2pcl_2common_2geometry_8h.html#a2fc89f0c26b7c7377fcd2851fa933b87">distance</a>.resize(1,0);</div>
<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_supervoxel_clustering.html#ad25cfde9a6e64d1a7070105122b78de5">voxel_kdtree_</a> == 0)</div>
<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;  {</div>
<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;    <a class="code" href="classpcl_1_1_supervoxel_clustering.html#ad25cfde9a6e64d1a7070105122b78de5">voxel_kdtree_</a>.reset (<span class="keyword">new</span> <a class="code" href="classpcl_1_1search_1_1_kd_tree.html">pcl::search::KdTree&lt;PointT&gt;</a>);</div>
<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    <a class="code" href="classpcl_1_1_supervoxel_clustering.html#ad25cfde9a6e64d1a7070105122b78de5">voxel_kdtree_</a> -&gt;setInputCloud (<a class="code" href="classpcl_1_1_supervoxel_clustering.html#a0ee5444ed0de3dc26427efd499740aad">voxel_centroid_cloud_</a>);</div>
<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;  }</div>
<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;  </div>
<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; num_seeds; ++i)  </div>
<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;  {</div>
<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;    <a class="code" href="classpcl_1_1_supervoxel_clustering.html#ad25cfde9a6e64d1a7070105122b78de5">voxel_kdtree_</a>-&gt;nearestKSearch (voxel_centers[i], 1, closest_index, distance);</div>
<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    seed_indices_orig[i] = closest_index[0];</div>
<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;  }</div>
<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;  </div>
<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;  std::vector&lt;int&gt; neighbors;</div>
<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;  std::vector&lt;float&gt; sqr_distances;</div>
<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;  seed_indices.reserve (seed_indices_orig.size ());</div>
<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;  <span class="keywordtype">float</span> search_radius = 0.5f*<a class="code" href="classpcl_1_1_supervoxel_clustering.html#a6bd458afc79e5b4569d07b582799c371">seed_resolution_</a>;</div>
<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;  <span class="comment">// This is 1/20th of the number of voxels which fit in a planar slice through search volume</span></div>
<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;  <span class="comment">// Area of planar slice / area of voxel side. (Note: This is smaller than the value mentioned in the original paper)</span></div>
<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;  <span class="keywordtype">float</span> min_points = 0.05f * (search_radius)*(search_radius) * 3.1415926536f  / (<a class="code" href="classpcl_1_1_supervoxel_clustering.html#aa6068bcabad2d3b1e6870b489354006c">resolution_</a>*<a class="code" href="classpcl_1_1_supervoxel_clustering.html#aa6068bcabad2d3b1e6870b489354006c">resolution_</a>);</div>
<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; seed_indices_orig.size (); ++i)</div>
<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;  {</div>
<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;    <span class="keywordtype">int</span> num = <a class="code" href="classpcl_1_1_supervoxel_clustering.html#ad25cfde9a6e64d1a7070105122b78de5">voxel_kdtree_</a>-&gt;radiusSearch (seed_indices_orig[i], search_radius , neighbors, sqr_distances);</div>
<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    <span class="keywordtype">int</span> min_index = seed_indices_orig[i];</div>
<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    <span class="keywordflow">if</span> ( num &gt; min_points)</div>
<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;    {</div>
<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;      seed_indices.push_back (min_index);</div>
<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;    }</div>
<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;    </div>
<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;  }</div>
<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160; <span class="comment">// std::cout &lt;&lt; &quot;Number of seed points after filtering=&quot;&lt;&lt;seed_points.size ()&lt;&lt;std::endl;</span></div>
<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;  </div>
<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_supervoxel_clustering_html_ad25cfde9a6e64d1a7070105122b78de5"><div class="ttname"><a href="classpcl_1_1_supervoxel_clustering.html#ad25cfde9a6e64d1a7070105122b78de5">pcl::SupervoxelClustering::voxel_kdtree_</a></div><div class="ttdeci">pcl::search::KdTree&lt; PointT &gt;::Ptr voxel_kdtree_</div><div class="ttdoc">Contains a KDtree for the voxelized cloud</div><div class="ttdef"><b>Definition:</b> supervoxel_clustering.h:390</div></div>
<div class="ttc" id="aclasspcl_1_1octree_1_1_octree_point_cloud_search_html"><div class="ttname"><a href="classpcl_1_1octree_1_1_octree_point_cloud_search.html">pcl::octree::OctreePointCloudSearch</a></div><div class="ttdoc">Octree pointcloud search class</div><div class="ttdef"><b>Definition:</b> octree_search.h:58</div></div>
<div class="ttc" id="aclasspcl_1_1search_1_1_kd_tree_html"><div class="ttname"><a href="classpcl_1_1search_1_1_kd_tree.html">pcl::search::KdTree</a></div><div class="ttdoc">search::KdTree is a wrapper class which inherits the pcl::KdTree class for performing search function...</div><div class="ttdef"><b>Definition:</b> kdtree.h:63</div></div>
<div class="ttc" id="acommon_2include_2pcl_2common_2geometry_8h_html_a2fc89f0c26b7c7377fcd2851fa933b87"><div class="ttname"><a href="common_2include_2pcl_2common_2geometry_8h.html#a2fc89f0c26b7c7377fcd2851fa933b87">pcl::geometry::distance</a></div><div class="ttdeci">float distance(const PointT &amp;p1, const PointT &amp;p2)</div><div class="ttdef"><b>Definition:</b> geometry.h:60</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a77235192a0a6f1622a1bb3d7cc0003d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a77235192a0a6f1622a1bb3d7cc0003d2">&#9670;&nbsp;</a></span>setInputCloud()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_supervoxel_clustering.html">pcl::SupervoxelClustering</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::setInputCloud </td>
          <td>(</td>
          <td class="paramtype">const typename <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This method sets the cloud to be supervoxelized </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>The cloud to be supervoxelize </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;{</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;  <span class="keywordflow">if</span> ( cloud-&gt;size () == 0 )</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;  {</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    PCL_ERROR (<span class="stringliteral">&quot;[pcl::SupervoxelClustering::setInputCloud] Empty cloud set, doing nothing \n&quot;</span>);</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;  }</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;  </div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;  <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a> = cloud;</div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;  <a class="code" href="classpcl_1_1_supervoxel_clustering.html#a01d37b323655ee29d2ed084e976901a1">adjacency_octree_</a>-&gt;setInputCloud (cloud);</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_p_c_l_base_html_a09c70d8e06e3fb4f07903fe6f8d67869"><div class="ttname"><a href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">pcl::PCLBase::input_</a></div><div class="ttdeci">PointCloudConstPtr input_</div><div class="ttdoc">The input point cloud dataset.</div><div class="ttdef"><b>Definition:</b> pcl_base.h:150</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a2b87562ad91fe6c0132340b53b04ea97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b87562ad91fe6c0132340b53b04ea97">&#9670;&nbsp;</a></span>setNormalCloud()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_supervoxel_clustering.html">pcl::SupervoxelClustering</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::setNormalCloud </td>
          <td>(</td>
          <td class="paramtype">typename NormalCloudT::ConstPtr&#160;</td>
          <td class="paramname"><em>normal_cloud</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This method sets the normals to be used for supervoxels (should be same size as input cloud) </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">normal_cloud</td><td>The input normals <br  />
 </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;{</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;  <span class="keywordflow">if</span> ( normal_cloud-&gt;size () == 0 )</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;  {</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    PCL_ERROR (<span class="stringliteral">&quot;[pcl::SupervoxelClustering::setNormalCloud] Empty cloud set, doing nothing \n&quot;</span>);</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;  }</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;  </div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;  <a class="code" href="classpcl_1_1_supervoxel_clustering.html#a680d5c934537a7ff7a6b2cc22eccd42c">input_normals_</a> = normal_cloud;</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_supervoxel_clustering_html_a680d5c934537a7ff7a6b2cc22eccd42c"><div class="ttname"><a href="classpcl_1_1_supervoxel_clustering.html#a680d5c934537a7ff7a6b2cc22eccd42c">pcl::SupervoxelClustering::input_normals_</a></div><div class="ttdeci">NormalCloudT::ConstPtr input_normals_</div><div class="ttdoc">Contains the Voxelized centroid Cloud</div><div class="ttdef"><b>Definition:</b> supervoxel_clustering.h:399</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="aa8888922b5dfae82f61ddb15f8074bd7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8888922b5dfae82f61ddb15f8074bd7">&#9670;&nbsp;</a></span>setUseSingleCameraTransform()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_supervoxel_clustering.html">pcl::SupervoxelClustering</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::setUseSingleCameraTransform </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>val</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set whether or not to use the single camera transform </p>
<dl class="section note"><dt>注解</dt><dd>By default it will be used for organized clouds, but not for unorganized - this parameter will override that behavior The single camera transform scales bin size so that it increases exponentially with depth (z dimension). This is done to account for the decreasing point density found with depth when using an RGB-D camera. Without the transform, beyond a certain depth adjacency of voxels breaks down unless the voxel size is set to a large value. Using the transform allows preserving detail up close, while allowing adjacency at distance. The specific transform used here is: x /= z; y /= z; z = ln(z); This transform is applied when calculating the octree bins in OctreePointCloudAdjacency </dd></dl>
<div class="fragment"><div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;{</div>
<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;  <a class="code" href="classpcl_1_1_supervoxel_clustering.html#aad0314b20af5f818269b74eb16185c96">use_default_transform_behaviour_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;  <a class="code" href="classpcl_1_1_supervoxel_clustering.html#a0349bfb9c9db7b0ea7b6dc951ecb6078">use_single_camera_transform_</a> = val;</div>
<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_supervoxel_clustering_html_a0349bfb9c9db7b0ea7b6dc951ecb6078"><div class="ttname"><a href="classpcl_1_1_supervoxel_clustering.html#a0349bfb9c9db7b0ea7b6dc951ecb6078">pcl::SupervoxelClustering::use_single_camera_transform_</a></div><div class="ttdeci">bool use_single_camera_transform_</div><div class="ttdoc">Whether or not to use the transform compressing depth in Z This is only checked if it has been manual...</div><div class="ttdef"><b>Definition:</b> supervoxel_clustering.h:412</div></div>
</div><!-- fragment -->
</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>segmentation/include/pcl/segmentation/<a class="el" href="supervoxel__clustering_8h_source.html">supervoxel_clustering.h</a></li>
<li>segmentation/include/pcl/segmentation/impl/<a class="el" href="supervoxel__clustering_8hpp_source.html">supervoxel_clustering.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>pcl</b></li><li class="navelem"><a class="el" href="classpcl_1_1_supervoxel_clustering.html">SupervoxelClustering</a></li>
    <li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
